package com.kang.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.kang.pojo.PurchaseOrderItem;

/**
 * 采购订单物品信息持久层
 * 
 * @author zs614
 *
 */
public interface PurchaseOrderItemMapper {
	/**
	 * 新增采购订单物品信息
	 * 
	 * @param item
	 *            采购订单物品信息实体类
	 * @return
	 */
	public int addOrderItem(PurchaseOrderItem item);

	/**
	 * 删除采购订单物品信息
	 * 
	 * @param id
	 *            采购订单物品信息ID
	 * @return
	 */
	public int deleteOrderItem(Integer id);

	/**
	 * 根据采购订单ID与物品来源查询采购订单物品信息
	 * 
	 * @param purchaseOrderID
	 *            采购订单ID
	 * @param sourceID
	 *            物品来源
	 * @return
	 */
	public PurchaseOrderItem selectOrderItem(@Param("purchaseOrderID") Integer purchaseOrderID,
			@Param("sourceID") Integer sourceID);

	/**
	 * 更新采购订单物品信息
	 * 
	 * @param item
	 *            采购订单物品信息
	 * @return
	 */
	public int updateOrderItem(PurchaseOrderItem item);

	/**
	 * 查看采购订单下物品信息
	 * 
	 * @param purchaseOrderID
	 *            采购订单ID
	 * @return
	 */
	public List<PurchaseOrderItem> listItemForOrder(int purchaseOrderID);

	/**
	 * 更新采购订单状态
	 * 
	 * @param purchaseOrderID
	 *            采购订单ID
	 * @param status
	 *            状态
	 * @return
	 */
	public Integer updateRequestItemStatus(@Param("purchaseOrderID") Integer purchaseOrderID,
			@Param("status") Integer status);

	/**
	 * 删除采购订单下不在物品来源下的物品信息
	 * 
	 * @param purchaseOrderID
	 *            采购订单ID
	 * @param sourceIDs
	 *            物品来源
	 * @return
	 */
	public Integer deleteNotIn(@Param("purchaseOrderID") Integer purchaseOrderID,
			@Param("sourceIDs") Integer[] sourceIDs);

	/**
	 * 根据采购订单id查询出订单里面的物品
	 * 
	 * @param purchaseOrderItem
	 *            采购订单物品信息
	 * @return
	 */
	public List<PurchaseOrderItem> selectPurchaseorderIteminformationByPurchaseOrderID(
			PurchaseOrderItem purchaseOrderItem);

	/**
	 * 根据采购订单id查询出订单里面的物品
	 * 
	 * @param purchaseOrderID
	 *            采购订单ID
	 * @param itemIds
	 *            物品ID
	 * @return
	 */
	public List<PurchaseOrderItem> selectPurchaseorderIteminformationByPurchaseOrderID2(
			@Param("purchaseOrderID") Integer purchaseOrderID, @Param("itemIds") Integer[] itemIds);

	/**
	 * 根据id查询出采购订单物品信息
	 * 
	 * @param id
	 *            采购订单物品信息ID
	 * @return
	 */
	public PurchaseOrderItem selectPurchaseorder_iteminformationById(Integer id);

	/**
	 * 根据id修改采购订单物品信息
	 * 
	 * @param purchaseOrderItem
	 *            采购订单物品信息
	 * @return
	 */
	public int updatePurchaseorder_iteminformationById(PurchaseOrderItem purchaseOrderItem);
}